///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  GameRuleProxy.h
//  PokerHandUp
//
//  Created by psvn047 on 6/20/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

#import <Foundation/Foundation.h>
#import "PlayerInfo.h"
#import "AppDelegate.h"
#import "CheckCardUtils.h"
@protocol GameRuleProxyDelegate;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
typedef enum
{
    stepTurn2Card = 1,
    stepTurn3Card = 2,
    stepTurnCard = 3,
    stepRiverCard = 4,
    stepEndCard = 5
} StepRound;

typedef enum
{
    cFold = 1,
    cCheck = 2,
    cCall = 3,
    cRaise = 4,
    cAuto = 5
} RankControl;
typedef enum
{
    rMyControl = 1,
    rRivalControl = 2,
    rNextStep = 3,
    rCheckControl = 4
} RankStatusGame;
@interface GameRuleProxy : NSObject
{
    id<GameRuleProxyDelegate> gameRuleProxyCallback;
    // using 
        
    PlayerInfo * myPlayer;
    PlayerInfo * rivalPlayer;
}
@property(nonatomic, retain)  id<GameRuleProxyDelegate> gameRuleProxyCallback;
@property(nonatomic, retain)   PlayerInfo * myPlayer;
@property(nonatomic, retain)   PlayerInfo * rivalPlayer;
-(void) startGame;
-(void) startRound;
-(void) requestStatus;
-(void) doAction:(int) action money:(long) money;
-(void) endRound;
-(void) endGame;
-(void) exitGame;
@end
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@protocol GameRuleProxyDelegate <NSObject>
-(void) startGameCallback:(NSMutableDictionary*) data;
-(void) startRoundCallback:(NSMutableDictionary*) data;
-(void) requestStatusCallback:(NSMutableDictionary*) data;
-(void) doActionCallback:(NSMutableDictionary*) data;
-(void) endRoundCallback:(NSMutableDictionary*) data;
-(void) endGameCallback:(NSMutableDictionary*) data;
-(void) exitGameCallback:(NSMutableDictionary*) data;
-(void) showTimerCallback;
@end
////////////////////////////////////////////////////////////////////////////////////////////////////////////////